package shujia.day13;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;

/*
    IO流：
        根据流向划分：
            输入流
            输出流
        根据种类划分：
            字节流【万能流】：
                字节输出流：OutputStream
                            - FileOutputStream
                            - BufferedOutputStream 【加入了缓冲区，写数据要更快】
                字节输入流：InputStream
                            - FileInputSteam
                            - BufferedInputStream   【加入了缓冲区，读取数据要更快】
            字符流=字节流+编码表：
                字符输出流
                字符输入流


 */
public class BufferedOutputStreamDemo1 {
    public static void main(String[] args) throws Exception{
        //BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流，以将数据写入指定的底层输出流。
        //创建字节缓冲输出流对象
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("src/shujia/day13/a2.txt",true));

        // 一次写一个字节
        bos.write(101);
        // 一次写一个字节数组
        byte[] bytes = {101,102,103,104};
        bos.write(bytes);
        // 一次写一个字节数组的一部分
        bos.write(bytes,1,2);


        bos.flush();
        //释放资源
        bos.close(); // 底层关闭之前，做了一次刷新操作，将内存缓冲区中的数据刷到了磁盘中
//        bos.write(102);
//        bos.flush();
    }
}
